Call-by-name linguistic side effects
نویسنده
چکیده
We propose a typed call-by-name λ-calculus with shift, reset and strict functions and describe its linguistic applications, improving on the previous continuation-based analyses of quantification, binding, raised and in-situ wh-questions, binding in wh-questions, and superiority. The evaluation order is not fixed left-to-right: rather, it is determined by the demand for values exerted by reset and strict functions. Since functions can take general, effectful terms, our analyses need no thunks and similar type raising. The main improvement of the present analyses is in typing: assigning types both to terms and contexts and building types using connectives with clear logical interpretation. Types abstractly interpret operational semantics, and thus concisely describe all the effects that could occur in the evaluation of a term. Our main result is that both typing and call-by-name are necessary to correctly predict superiority and binding in wh-questions with topicalization, without resorting to thunking or type raising and thus maintaining the uniformity of the analyses. We have implemented the calculus including the type checking and mechanically verified all the analyses.
منابع مشابه
Induction by Coinduction and Control Operators in Call-by-Name
This paper studies emulation of induction by coinduction in a call-by-name language with control operators. Since it is known that call-by-name programming languages with control operators cannot have general initial algebras, interaction of induction and control operators is often restricted to effect-free functions. We show that some class of such restricted inductive types can be derived fro...
متن کاملAn Algebraic View of Program Composition
We propose a general categorical setting for modeling program composition in which the call-by-value and call-by-name disciplines fit as special cases. Other notions of composition arising in denotational semantics are captured in the same framework: our leading examples are nondeterministic call-by-need programs and nonstrict functions with side effects. Composition of such functions is treate...
متن کاملAn Analysis of Parameter Evaluation of Recursive Procedures
A class of recursive program schemata PR is defined abstracting ALGOL-like procedures. Four generic types of parameter evaluation are considered; call by value, PRV, call by copy, PRc, call by reference, PRr, and call by name, PRj. Two other types of theoretical interest are also considered: "normal evaluation", Ffin, a non-side effect, evaluation postponement mechansim and call by ouote, PRq, ...
متن کاملLazy mixin modules and disciplined effects
Programming languages are expected to support programmer’s effort to structure program code. The ML module system, object systems and mixins are good examples of language constructs promoting modular programming. Among the three, mixins can be thought of as a generalization of the two others in the sense that mixins can incorporate features of ML modules and objects with a set of primitive oper...
متن کاملA Multilingual Perspective on Translanguaging
Translanguaging is a new term in bilingual education; it supports a heteroglossic language ideology, which views bilingualism as valuable in its own right. Some translanguaging scholars have questioned the existence of discrete languages, further concluding that multilingualism does not exist. I argue that the political use of language names can and should be distinguished from the social and s...
متن کامل